package com.caijin.system.service;

import com.caijin.common.core.domain.Result;
import com.caijin.common.core.domain.dto.ClazzDTO;
import com.caijin.common.core.domain.entity.Clazz;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 班级表 服务类
 * </p>
 *
 * @author Peas
 * @since 2021-01-18
 */
public interface IClazzService extends IService<Clazz> {

    /**
     * 创建班级
     *
     * @param clazz 班级信息,附带有cno
     * @return 结果
     */
    Result createClazz(Clazz clazz);

    /**
     * 学生加入班级
     *
     * @param invitationCode 邀请码
     * @param sno            学号
     * @return
     */
    Result joinClazz(String invitationCode, Long sno);

    /**
     * 获取课程的班级列表
     *
     * @param cno 课程号
     * @return 班级列表
     */
    Result getClazzListByCno(Long cno);

    /**
     * 获取班级的学生列表
     *
     * @param clazzId 班级id
     * @return 学生列表
     */
    Result getStudentList(Long clazzId);

    /**
     * 修改班级信息
     *
     * @param clazzDTO 班级修改信息传递模型
     * @return
     */
    Result modifiedClazz(ClazzDTO clazzDTO);

    /**
     * 删除班级
     *
     * @param id 班级id
     * @return 结果
     */
    Result deleteClazz(Long id);
}
